<!doctype html>
<html lang="en">

<head>
  <meta charset="utf-8">
  <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
  
  <meta name="generator" content="Hugo 0.98.0" />

  
  <meta name="description" content="走在通往幸福的路上">
  

  
  <link rel="apple-touch-icon" sizes="180x180" href="https://blog.v5u.win/apple-touch-icon.png">

  
  <link rel="icon" type="image/png" sizes="32x32" href="https://blog.v5u.win/favicon-32x32.png">

  
  <link rel="icon" type="image/png" sizes="16x16" href="https://blog.v5u.win/favicon-16x16.png">

  
  <link rel="manifest" href="https://blog.v5u.win/site.webmanifest">

  
  <link rel="mask-icon" href="https://blog.v5u.win/safari-pinned-tab.svg" color="">

  <meta name="msapplication-TileColor" content="">

  <meta name="theme-color" content="">

  
  <link rel="stylesheet" href="https://blog.v5u.win/css/bootstrap.min.css" />

  
  <title>sqlite3使用总结 | 为吾优</title>
  

  <style>
body {
  min-width: 300px;
}

.custom-navbar {
  margin-bottom: 1em;
  height: 60px;
}

.custom-navbar a {
  display: inline-block; 
  padding: 18px 0;
  margin-right: 1em; 
  font-weight: bold; 
}

.custom-navbar a:hover,
.custom-navbar a:focus {
  text-decoration: none; 
}

@media print {
  .custom-navbar {
    display: none;
  }
}

article {
  padding-bottom: 1em;
}

img {
  max-width: 100%;
}


body {
  background-color: #fff;
}



body {
  color: #212529;
}



a {
  color: #007bff;
}



a:hover,
a:focus {
  color: #0056b3;
}



.custom-navbar {
  background-color: #212529;
}



.custom-navbar a {
  color: rgba(255,255,255,.75);
}



.custom-navbar a:hover,
.custom-navbar a:focus {
  color: rgba(255,255,255,1);
}



.container {
  max-width: 800px;
}





</style>
</head>

<body>
  <nav class="custom-navbar">
  <div class="container">
    
    <a href="/">文章</a>
    
    <a href="/tags/">标签</a>
    
    <a href="/about/">关于</a>
    
    <a href="/index.xml">RSS</a>
    
  </div>
</nav>
  
  <div class="container">
    <article>
      <h1>sqlite3使用总结</h1>
<p>
  <small class="text-secondary">
  
  
  2018-10-09
  </small>
  

<small><code><a href="https://blog.v5u.win/tags/sqlite">sqlite</a></code></small>

</p>
<p>新建数据库</p>
<p>sqlite3 databasefilename</p>
<p>检查databasefilename是否存在，如果不存在就创建并进入数据库（如果直接退出，数据库文件不会创建）如果已经存在直接进入数据库 对数据库进行操作</p>
<p><!-- raw HTML omitted --><!-- raw HTML omitted --> <!-- raw HTML omitted --></p>
<p>创建表：</p>
<p>create table if not exists UserList(id integer primary key autoincrement,firstName[not null],lastName[not null],sex,birthday,remark[not null],resumeNum[not null])</p>
<p>该表已经创建了主键，可以自增ID</p>
<p>terminal命令行使用sqlite3</p>
<p>打开或创建：进入到文件所在目录下，输入sqlite3 filename</p>
<p>1、显示数据库中所有的表：.tables</p>
<p>2、显示表头：.head on 然后执行 select * from tableName</p>
<p>sqlite中命令:</p>
<p>以.开头,大小写敏感（数据库对象名称是大小写不敏感的）</p>
<p>.exit</p>
<p>.help 查看帮助 针对命令</p>
<p>.database 显示数据库信息；包含当前数据库的位置</p>
<p>.tables 或者 .table 显示表名称 没有表则不显示</p>
<p>.schema 命令可以查看创建数据对象时的SQL命令；</p>
<p>.schema databaseobjectname查看创建该数据库对象时的SQL的命令；如果没有这个数据库对象就不显示内容，不会有错误提示</p>
<p>.read FILENAME 执行指定文件中的SQL语句</p>
<p>.headers on/off 显示表头 默认off</p>
<p>.mode list|column|insert|line|tabs|tcl|csv 改变输出格式，具体如下</p>
<p>sqlite .mode list</p>
<p>sqlite select * from emp;</p>
<p>7369|SMITH|CLERK|7902|17-12-1980|800||20</p>
<p>7499|ALLEN|SALESMAN|7698|20-02-1981|1600|300|30</p>
<p>如果字段值为NULL 默认不显示 也就是显示空字符串</p>
<p>sqlite .mode column</p>
<p>sqlite select * from emp;</p>
<p>7369 SMITH CLERK 7902 17-12-1980 800 20</p>
<p>7499 ALLEN SALESMAN 7698 20-02-1981 1600 300 30</p>
<p>7521 WARD SALESMAN 7698 22-02-1981 1250 500 30</p>
<p>sqlite .mode insert</p>
<p>sqlite select * from dept;</p>
<p>INSERT INTO table VALUES(10,ACCOUNTING,NEW YORK);</p>
<p>INSERT INTO table VALUES(20,RESEARCH,DALLAS);</p>
<p>INSERT INTO table VALUES(30,SALES,CHICAGO);</p>
<p>INSERT INTO table VALUES(40,OPERATIONS,BOSTON);</p>
<p>sqlite .mode line</p>
<p>sqlite select * from dept;</p>
<p>DEPTNO = 10</p>
<p>DNAME = ACCOUNTING</p>
<p>LOC = NEW YORK</p>
<p>DEPTNO = 20</p>
<p>DNAME = RESEARCH</p>
<p>LOC = DALLAS</p>
<p>DEPTNO = 30</p>
<p>DNAME = SALES</p>
<p>LOC = CHICAGO</p>
<p>DEPTNO = 40</p>
<p>DNAME = OPERATIONS</p>
<p>LOC = BOSTON</p>
<p>sqlite .mode tabs</p>
<p>sqlite select * from dept;</p>
<p>10 ACCOUNTING NEW YORK</p>
<p>20 RESEARCH DALLAS</p>
<p>30 SALES CHICAGO</p>
<p>40 OPERATIONS BOSTON</p>
<p>sqlite .mode tcl</p>
<p>sqlite select * from dept;</p>
<p>10 ACCOUNTINGNEW YORK</p>
<p>20 RESEARCHDALLAS</p>
<p>30 SALES CHICAGO</p>
<p>40 OPERATIONSBOSTON</p>
<p>sqlite .mode csv</p>
<p>sqlite select * from dept;</p>
<p>10,ACCOUNTING,NEW YORK</p>
<p>20,RESEARCH,DALLAS</p>
<p>30,SALES,CHICAGO</p>
<p>40,OPERATIONS,BOSTON</p>
<p>.separator X 更改分界符号为X</p>
<p>sqlite .separator</p>
<p>sqlite select * from dept;</p>
<p>10ACCOUNTINGNEW YORK</p>
<p>20RESEARCHDALLAS</p>
<p>30SALESCHICAGO</p>
<p>40OPERATIONS**BOSTON</p>
<p>.dump ?TABLE? 生成形成数据库表的SQL脚本</p>
<p>.dump 生成整个数据库的脚本在终端显示</p>
<p>.output stdout 将输出打印到屏幕 默认</p>
<p>.output filename 将输出打印到文件（.dump .output 结合可将数据库以sql语句的形式导出到文件中）</p>
<p>.nullvalue STRING 查询时用指定的串代替输出的NULL串 默认为.nullvalue</p>
<p>字段类型：</p>
<p>数据库中存储的每个值都有一个类型,都属于下面所列类型中的一种,(被数据库引擎所控制)</p>
<p>NULL: 这个值为空值</p>
<p>INTEGER: 值被标识为整数,依据值的大小可以依次被存储为1,2,3,4,5,6,7,8个字节</p>
<p>REAL: 所有值都是浮动的数值,被存储为8字节的IEEE浮动标记序号.</p>
<p>TEXT: 文本. 值为文本字符串,使用数据库编码存储(TUTF-8, UTF-16BE or UTF-16-LE).</p>
<p>BLOB: 值是BLOB数据,如何输入就如何存储,不改变格式.</p>
<p>值被定义为什么类型只和值自身有关,和列没有关系,和变量也没有关系.所以sqlite被称作 弱类型 数据库</p>
<p>数据库引擎将在执行时检查、解析类型，并进行数字存储类型(整数和实数)和文本类型之间的转换.</p>
<p>SQL语句中部分的带双引号或单引号的文字被定义为文本,</p>
<p>如果文字没带引号并没有小数点或指数则被定义为整数,</p>
<p>如果文字没带引号但有小数点或指数则被定义为实数,</p>
<p>如果值是空则被定义为空值.</p>
<p>BLOB数据使用符号XABCD来标识.</p>
<p>但实际上，sqlite3也接受如下的数据类型：</p>
<p>smallint 16位的整数。</p>
<p>interger 32位的整数。</p>
<p>decimal(p,s) 精确值p是指全部有几个十进制数,s是指小数点后可以有几位小数。如果没有特别指定，则系统会默认为p=5 s=0 。</p>
<p>float 32位元的实数。</p>
<p>double 64位元的实数。</p>
<p>char(n) n 长度的字串，n不能超过 254。</p>
<p>varchar(n) 长度不固定且其最大长度为 n 的字串，n不能超过 4000。</p>
<p>graphic(n) 和 char(n) 一样，不过其单位是两个字节， n不能超过127。这个形态是为了支持两个字节长度的字体，如中文字。</p>
<p>vargraphic(n) 可变长度且其最大长度为n的双字元字串，n不能超过2000</p>
<p>date 包含了 年份、月份、日期。</p>
<p>time 包含了 小时、分钟、秒。</p>
<p>timestamp 包含了 年、月、日、时、分、秒、千分之一秒。</p>
<p>SQLite包含了如下时间/日期函数：</p>
<p>datetime() 产生日期和时间 无参数表示获得当前时间和日期</p>
<p>sqlite select datetime();</p>
<p>2012-01-07 12:01:32</p>
<p>有字符串参数则把字符串转换成日期</p>
<p>sqlite select datetime(2012-01-07 12:01:30);</p>
<p>2012-01-07 12:01:30</p>
<p>select date(2012-01-08,+1 day,+1 year);</p>
<p>2013-01-09</p>
<p>select datetime(2012-01-08 00:20:00,+1 hour,-12 minute);</p>
<p>2012-01-08 01:08:00</p>
<p>select datetime(now,start of year);</p>
<p>2012-01-01 00:00:00</p>
<p>select datetime(now,start of month);</p>
<p>2012-01-01 00:00:00</p>
<p>select datetime(now,start of day);</p>
<p>2012-01-08 00:00:00</p>
<p>select datetime(now,start of week);错误</p>
<p>select datetime(now,localtime);</p>
<p>结果：2006-10-17 21:21:47</p>
<p>date()产生日期</p>
<p>sqlite select date(2012-01-07 12:01:30);</p>
<p>2012-01-07</p>
<p>同理 有参和无参</p>
<p>select date(now,start of year);</p>
<p>2012-01-01</p>
<p>select date(2012-01-08,+1 month);</p>
<p>2012-02-08</p>
<p>time() 产生时间</p>
<p>select time();</p>
<p>03:14:30</p>
<p>select time(23:18:59);</p>
<p>23:18:59</p>
<p>select time(23:18:59,start of day);</p>
<p>00:00:00</p>
<p>select time(23:18:59,end of day);错误</p>
<p>在时间/日期函数里可以使用如下格式的字符串作为参数：</p>
<p>YYYY-MM-DD</p>
<p>YYYY-MM-DD HH:MM</p>
<p>YYYY-MM-DD HH:MM:SS</p>
<p>YYYY-MM-DD HH:MM:SS.SSS</p>
<p>HH:MM</p>
<p>HH:MM:SS</p>
<p>HH:MM:SS.SSS</p>
<p>now</p>
<p>其中now是产生现在的时间。</p>
<p>日期不能正确比较大小,会按字符串比较，日期默认格式 dd-mm-yyyy</p>
<p>select hiredate from emp order by hiredate;</p>
<p>17-11-1981</p>
<p>17-12-1980</p>
<p>19-04-1987</p>
<p>20-02-1981</p>
<p>22-02-1981</p>
<p>strftime() 对以上三个函数产生的日期和时间进行格式化</p>
<p>strftime()函数可以把YYYY-MM-DD HH:MM:SS格式的日期字符串转换成其它形式的字符串。 strftime(格式, 日期/时间, 修正符, 修正符, …) select strftime(%d,datetime());</p>
<p>它可以用以下的符号对日期和时间进行格式化：</p>
<p>%d 在该月中的第几天, 01-31</p>
<p>%f 小数形式的秒，SS.SSS</p>
<p>%H 小时, 00-23</p>
<p>%j 算出某一天是该年的第几天，001-366</p>
<p>%m 月份，00-12</p>
<p>%M 分钟, 00-59</p>
<p>%s 从1970年1月1日到现在的秒数</p>
<p>%S 秒, 00-59</p>
<p>%w 星期, 0-6 (0是星期天)</p>
<p>%W 算出某一天属于该年的第几周, 01-53</p>
<p>%Y 年, YYYY</p>
<p>%% 百分号</p>
<p>select strftime(%Y.%m.%d %H:%M:%S,now);</p>
<p>select strftime(%Y.%m.%d %H:%M:%S,now,localtime);</p>
<p>结果：2006.10.17 21:41:09</p>
<p>select hiredate from emp</p>
<p>order by strftime(%Y.%m.%d %H:%M:%S,hiredate); 正确</p>
<p>select strftime(%Y.%m.%d %H:%M:%S,hiredate) from emp</p>
<p>order by strftime(%Y.%m.%d %H:%M:%S,hiredate); 错误</p>
<p>算术函数</p>
<p>abs(X) 返回给定数字表达式的绝对值。</p>
<p>max(X,Y[,…]) 返回表达式的最大值。 组函数 max(列名)</p>
<p>sqlite select max(2,3,4,5,6,7,12);</p>
<p>12</p>
<p>min(X,Y[,…]) 返回表达式的最小值。</p>
<p>random() 返回随机数。</p>
<p>sqlite select random();</p>
<p>3224224213599993831</p>
<p>round(X[,Y]) 返回数字表达式并四舍五入为指定的长度或精度。</p>
<p>字符处理函数</p>
<p>length(X) 返回给定字符串表达式的字符个数。</p>
<p>lower(X) 将大写字符数据转换为小写字符数据后返回字符表达式。</p>
<p>upper(X) 返回将小写字符数据转换为大写的字符表达式。</p>
<p>substr(X,Y,Z) 返回表达式的一部分。 从Y开始读Z个字符 Y最小值1</p>
<p>sqlite select substr(abcdef,3,3);</p>
<p>cde</p>
<p>quote(A) 给字符串加引号</p>
<p>sqlite select quote(aaa);</p>
<p>aaa</p>
<p>条件判断函数</p>
<p>ifnull(X,Y) 如果X为null 返回Y</p>
<p>select ifnull(comm,0) from emp;</p>
<p>300</p>
<p>500</p>
<p>1400</p>
<p>集合函数</p>
<p>avg(X) 返回组中值的平均值。</p>
<p>count(X) 返回组中项目的数量。</p>
<p>max(X) 返回组中值的最大值。</p>
<p>min(X) 返回组中值的最小值。</p>
<p>sum(X) 返回表达式中所有值的和。</p>
<p>其他函数</p>
<p>typeof(X) 返回数据的类型。</p>
<p>sqlite select typeof(111);</p>
<p>integer</p>
<p>sqlite select typeof(233);</p>
<p>text</p>
<p>sqlite select typeof(2012-12-12);</p>
<p>text</p>
<p>sqlite select typeof(223.44);</p>
<p>text</p>
<p>sqlite select typeof(223.44);</p>
<p>real</p>
<p>last_insert_rowid() 返回最后插入的数据的ID。</p>
<p>sqlite_version() 返回SQLite的版本。</p>
<p>sqlite select sqlite_version();</p>
<p>3.7.9</p>
<p>change_count() 返回受上一语句影响的行数。</p>
<p>last_statement_change_count()</p>
<p>create table emp_bak select * from EMP;不能在sqlite中使用</p>
<p>插入记录</p>
<p>insert into table_name values (field1, field2, field3…);</p>
<p>查询</p>
<p>select * from table_name;查看table_name表中所有记录；</p>
<p>select * from table_name where field1=xxxxx; 查询符合指定条件的记录；</p>
<p>select …..</p>
<p>from table_name[,table_name2,…]</p>
<p>where …..</p>
<p>group by….</p>
<p>having ….</p>
<p>order by …</p>
<p>select …..</p>
<p>from table_name inner join | left outer join | right outer join table_name2</p>
<p>on …</p>
<p>where …..</p>
<p>group by….</p>
<p>having ….</p>
<p>order by …</p>
<p>子查询：</p>
<p>select *</p>
<p>from EMP m</p>
<p>where SAL</p>
<p>(select avg(SAL) from EMP where DEPTNO=m.DEPTNO);</p>
<p>支持case when then 语法</p>
<p>update EMP</p>
<p>set SAL=</p>
<p>(</p>
<p>case</p>
<p>when DEPTNO=10 and JOB=MANAGER then SAL1.1</p>
<p>when DEPTNO=20 and JOB=CLERK then SAL1.2</p>
<p>when DEPTNO=30 then SAL1.1</p>
<p>when DEPTNO=40 then SAL1.2</p>
<p>else SAL</p>
<p>END</p>
<p>);</p>
<p>select ENAME,</p>
<p>case DEPTNO</p>
<p>when 10 then 后勤部</p>
<p>when 20 then 财务部</p>
<p>when 30 then 内务部门</p>
<p>else 其他部门</p>
<p>end as dept</p>
<p>from EMP;</p>
<p>支持关联子查询 in后面的语法中可以有limit（mysql不可以）</p>
<p>select *</p>
<p>from emp e</p>
<p>where e.EMPNO in</p>
<p>(</p>
<p>select empno</p>
<p>from EMP</p>
<p>where deptno=e.DEPTNO</p>
<p>order by SAL desc</p>
<p>limit 0,2</p>
<p>);</p>
<p>支持表和表之间的数据合并等操作</p>
<p>union 去重复 union all 不去掉重复</p>
<p>select deptno from emp</p>
<p>union</p>
<p>select deptno from dept;</p>
<p>select deptno from emp</p>
<p>union all</p>
<p>select deptno from dept;</p>
<p>在列名前加distinct也是去重复</p>
<p>sqlite select distinct deptno from emp;</p>
<p>删除</p>
<p>delete from table_name where …</p>
<p>删除表</p>
<p>drop table_name; 删除表；</p>
<p>drop index_name; 删除索引；</p>
<p>修改</p>
<p>update table_name</p>
<p>set xxx=value[, xxx=value,…]</p>
<p>where …</p>
<p>建立索引</p>
<p>如果资料表有相当多的资料，我们便会建立索引来加快速度。好比说：</p>
<p>create index film_title_index on film(title);</p>
<p>意思是针对film资料表的name字段，建立一个名叫film_name_index的索引。这个指令的语法为</p>
<p>CREATE [ UNIQUE ] NONCLUSTERED INDEX index_name</p>
<p>ON { table | view } ( column ASC | DESC )</p>
<p>create index index_name on table_name(field_to_be_indexed);</p>
<p>一旦建立了索引，sqlite3会在针对该字段作查询时，自动使用该索引。这一切的操作都是在幕后自动发生的，无须使用者特别指令。</p>
<p>其他sqlite的特别用法</p>
<p>sqlite可以在shell底下直接执行命令：</p>
<p>sqlite3 film.db select * from emp;</p>
<p>输出 HTML 表格：</p>
<p>sqlite3 -html film.db select * from film;</p>
<p>将数据库「倒出来」：</p>
<p>sqlite3 film.db .dump output.sql</p>
<p>利用输出的资料，建立一个一模一样的数据库（加上以上指令，就是标准的SQL数据库备份了）：</p>
<p>sqlite3 film.db output.sql</p>
<p>在大量插入资料时，你可能会需要先打这个指令：</p>
<p>begin;</p>
<p>插入完资料后要记得打这个指令，资料才会写进数据库中：</p>
<p>commit;</p>
<p>sqlite begin;</p>
<p>sqlite insert into aaaa values(aaa,333);</p>
<p>sqlite select * from aaaa;</p>
<p>2|sdfds</p>
<p>sdfsd|9</p>
<p>2012-12-12|13:13:13</p>
<p>aaa|333</p>
<p>sqlite rollback;</p>
<p>sqlite select * from aaaa;</p>
<p>2|sdfds</p>
<p>sdfsd|9</p>
<p>2012-12-12|13:13:13</p>
<p>创建和删除视图</p>
<p>CREATE VIEW view_name AS</p>
<p>SELECT column_name(s)</p>
<p>FROM table_name</p>
<p>WHERE condition</p>
<p>DROP VIEW view_name</p>
<p>create view e as</p>
<p>select avg(SAL) avgsal,DEPTNO</p>
<p>from EMP</p>
<p>group by DEPTNO;</p>
<p>select ENAME,EMP.DEPTNO,SAL,avgsal</p>
<p>from EMP inner join e</p>
<p>on EMP.DEPTNO=e.DEPTNO</p>
<p>where SALavgsal;</p>
<p>练习员工表：</p>
<p>PRAGMA foreign_keys=OFF;</p>
<p>BEGIN TRANSACTION;</p>
<p>CREATE TABLE DEPT</p>
<p>(</p>
<p>DEPTNO int(2) not null,</p>
<p>DNAME varchar(14),</p>
<p>LOC varchar(13)</p>
<p>);</p>
<p>INSERT INTO DEPT VALUES(10,ACCOUNTING,NEW YORK);</p>
<p>INSERT INTO DEPT VALUES(20,RESEARCH,DALLAS);</p>
<p>INSERT INTO DEPT VALUES(30,SALES,CHICAGO);</p>
<p>INSERT INTO DEPT VALUES(40,OPERATIONS,BOSTON);</p>
<p>CREATE TABLE EMP</p>
<p>(</p>
<p>EMPNO int(4) not null,</p>
<p>ENAME varchar(10),</p>
<p>JOB varchar(9),</p>
<p>MGR int(4),</p>
<p>HIREDATE date,</p>
<p>SAL int(7 ),</p>
<p>COMM int(7 ),</p>
<p>DEPTNO int(2)</p>
<p>);</p>
<p>INSERT INTO EMP VALUES(7369,SMITH,CLERK,7902,17-12-1980,800,NULL,20);</p>
<p>INSERT INTO EMP VALUES(7499,ALLEN,SALESMAN,7698,20-02-1981,1600,300,30);</p>
<p>INSERT INTO EMP VALUES(7521,WARD,SALESMAN,7698,22-02-1981,1250,500,30);</p>
<p>INSERT INTO EMP VALUES(7566,JONES,MANAGER,7839,02-04-1981,2975,NULL,20);</p>
<p>INSERT INTO EMP VALUES(7654,MARTIN,SALESMAN,7698,28-09-1981,1250,1400,30);</p>
<p>INSERT INTO EMP VALUES(7698,BLAKE,MANAGER,7839,01-05-1981,2850,NULL,30);</p>
<p>INSERT INTO EMP VALUES(7782,CLARK,MANAGER,7839,09-06-1981,2450,NULL,10);</p>
<p>INSERT INTO EMP VALUES(7788,SCOTT,ANALYST,7566,19-04-1987,3000,NULL,20);</p>
<p>INSERT INTO EMP VALUES(7839,KING,PRESIDENT,NULL,17-11-1981,5000,NULL,10);</p>
<p>INSERT INTO EMP VALUES(7844,TURNER,SALESMAN,7698,08-09-1981,1500,0,30);</p>
<p>INSERT INTO EMP VALUES(7876,ADAMS,CLERK,7788,23-05-1987,1100,NULL,20);</p>
<p>INSERT INTO EMP VALUES(7900,JAMES,CLERK,7698,03-12-1981,950,NULL,30);</p>
<p>INSERT INTO EMP VALUES(7902,FORD,ANALYST,7566,03-12-1981,3000,NULL,20);</p>
<p>INSERT INTO EMP VALUES(7934,MILLER,CLERK,7782,23-01-1982,1300,NULL,10);</p>
<p>CREATE TABLE SALGRADE</p>
<p>(</p>
<p>GRADE int,</p>
<p>LOSAL int,</p>
<p>HISAL int</p>
<p>);</p>
<p>INSERT INTO SALGRADE VALUES(1,700,1200);</p>
<p>INSERT INTO SALGRADE VALUES(2,1201,1400);</p>
<p>INSERT INTO SALGRADE VALUES(3,1401,2000);</p>
<p>INSERT INTO SALGRADE VALUES(4,2001,3000);</p>
<p>INSERT INTO SALGRADE VALUES(5,3001,9999);</p>
<p>COMMIT;</p>

    </article>
  </div>

  
  
  

  
</body>

</html>